= nav_link(**sidebar_menu.all_active_routes, html_options: sidebar_menu.nav_link_html_options) do
  - if sidebar_menu.menu_with_partial?
    = render_if_exists sidebar_menu.menu_partial, **sidebar_menu.menu_partial_options
  - else
    = link_to sidebar_menu.link, **sidebar_menu.link_html_options, data: { testid: 'sidebar_menu_link', qa_menu_item: sidebar_menu.title } do
      - if sidebar_menu.icon_or_image?
        %span.nav-icon-container
          - if sidebar_menu.image_path
            = image_tag(sidebar_menu.image_path, **sidebar_menu.image_html_options)
          - elsif sidebar_menu.sprite_icon
            = sprite_icon(sidebar_menu.sprite_icon, **sidebar_menu.sprite_icon_html_options)

      %span.nav-item-name{ **sidebar_menu.title_html_options }
        = sidebar_menu.title
      - if sidebar_menu.has_pill?
        = gl_badge_tag({ variant: :info, size: :sm }, { class: "count #{sidebar_menu.pill_html_options[:class]}" }) do
          = number_with_delimiter(sidebar_menu.pill_count)

    = render partial: 'shared/nav/sidebar_submenu', locals: { sidebar_menu: sidebar_menu }
